When a user enters a character using a keyboard, the key-stroke is received by the underlying operating system of the computer. An application software then receives this key-stroke from the operating system and performs one or more operations. The key-stroke is interpreted as a binary code corresponding to a character encoding scheme used by the operating system and the application software.
A character encoding scheme is a mapping defined between a character set and its binary code representation. ANSI (American National Standard Institute) and Unicode standards are widely used character encoding schemes. The ANSI standard supports English and other European language characters. It also provides an extended support for up to 128 more characters of any other language. However, the Unicode standard supports more than 110,000 characters from 100 scripts. Clearly, languages having character sets larger than 128 base characters and variants cannot be accurately represented by using the ANSI standard. A character encoding scheme may be implemented in a variety of ways.
A code page is an implementation of a character encoding scheme for a particular language. There are interoperability issues in using ANSI-based code pages due to the possibility of their different implementations throughout the world. On the other hand, Unicode-based code pages are consistent throughout the world and support a large number of languages including those with large character sets. An enterprise software is one of the most commonly used application software today. Most of the enterprise software are still ANSI-based as they were envisioned to be used only in English and some European languages. To provide local language support, enterprise software needs to be migrated to Unicode, which is a time consuming and a costly process. For language translation consistency, production data is stored in all the supported languages. This greatly increases the storage requirement for a production database. Moreover, storing data in multiple languages leads to data consistency and usability issues. Thus, there is a need for providing local language support for application software by overcoming the above mentioned problems.